package readerRSS;

import MVC.IController;
import technical.HasBeenSeenStruct;

/**
 *
 * @author Tania M
 * @version 1.0
 */
public class RssItemController implements IController {

    // Item : un article d'un flux (un flux en entier est un canal)
    private RssItemModel _model = null;
    private HasBeenSeenStruct _viewState = null;

    /**
     * Constructeur
     */
    public RssItemController() {
        this._model = new RssItemModel();
        _viewState = new HasBeenSeenStruct();
    }

    /**
     * Constructeur à partir d'un autre modèle
     *
     * @param modele
     */
    public RssItemController(RssItemModel modele) {
        this._model = modele;
        _viewState = new HasBeenSeenStruct();
    }

    /**
     * renvoie le titre
     *
     * @return
     */
    public String getTitle() {
        return _model.getTitle();
    }

    /**
     * initialise le titre
     *
     * @param title
     */
    public void setTitle(String title) {
        _model.setTitle(title);
    }

    /**
     * renvoie le lien de l'article
     *
     * @return
     */
    public String getLink() {
        return _model.getLink();
    }

    /**
     * initialise le lien de l'article
     *
     * @param link
     */
    public void setLink(String link) {
        _model.setLink(link);
    }

    /**
     * renvoie la description (contenu de l'article)
     *
     * @return
     */
    public String getDesc() {
        return _model.getDescription();
    }

    /**
     * initialise la description (contenu de l'article)
     *
     * @param description the description to set
     */
    public void setDesc(String description) {
        _model.setDescription(description);
    }

    /**
     * identifiant de l'article
     *
     * @return the guid
     */
    public String getGuid() {
        return _model.getGuid();
    }

    /**
     * identifiant de l'article
     *
     * @param guid the guid to set
     */
    public void setGuid(String guid) {
        _model.setGuid(guid);
    }

    /**
     * @return the category
     */
    public String getCategory() {
        return _model.getCategory();
    }

    /**
     * @param category the category to set
     */
    public void setCategory(String category) {
        _model.setCategory(category);
    }

    /**
     * renvoie par référence le modèle correspondant à l'item
     *
     * @return the modele
     */
    public RssItemModel getModel() {
        return new RssItemModel(_model);
    }

    /**
     * l'article a-t-il été lu?
     *
     * @return the _viewState
     */
    public HasBeenSeenStruct getHasBeenSeenState() {
        return _viewState;
    }

    /**
     * met à jour l'état de lecture de l'article
     *
     * @param etat_vu the _viewState to set
     */
    public void setHasBeenSeenState(HasBeenSeenStruct etat_vu) {
        this._viewState = etat_vu;
    }
}
